package com.health.platform.provider.homepage.dao;

import com.health.platform.common.core.entity.BaseQueryEntity;
import com.health.platform.provider.homepage.entity.AvgCostEntity;
import com.health.platform.provider.homepage.entity.ChMedicineEntity;
import com.health.platform.provider.homepage.entity.CrowdStatusEntity;
import com.health.platform.provider.homepage.entity.DisMonitorEntity;
import com.health.platform.provider.homepage.entity.HealthResEntity;
import com.health.platform.provider.homepage.entity.HomeSummaryEntity;
import com.health.platform.provider.homepage.entity.HotEntity;
import com.health.platform.provider.homepage.entity.MedicalEntity;
import com.health.platform.provider.homepage.entity.OutpatientFlowEntity;
import com.health.platform.provider.homepage.entity.PublicServiceEntity;

import java.util.List;

/**
 * <p>首页dao</p>
 * <p>创建日期：2021-02-24</p>
 *
 * @author 周群峰 zhou-qf_sr@neusiri.com
 */
public interface HomePageDao {

    /**
     * 获取门急诊、互联网人次
     * @param baseQueryEntity 参数
     * @return 结果
     */
    HomeSummaryEntity getClinicEmeIntNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取出生人次 男女
     * @param baseQueryEntity 参数
     * @return 结果
     */
    HomeSummaryEntity getBornNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取出院人次
     * @param baseQueryEntity 参数
     * @return 结果
     */
    HomeSummaryEntity getLeaveHospitalNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取疫苗接种人次
     * @param baseQueryEntity 参数
     * @return 结果
     */
    HomeSummaryEntity getInoculationNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取献血人次
     * @param baseQueryEntity 参数
     * @return 结果
     */
    HomeSummaryEntity getDonationNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取人均预期寿命
     * @param baseQueryEntity 参数
     * @return 结果
     */
    CrowdStatusEntity getAverageLife(BaseQueryEntity baseQueryEntity);

    /**
     * 获取人口出生率
     * @param baseQueryEntity 参数
     * @return 结果
     */
    CrowdStatusEntity getBirthRate(BaseQueryEntity baseQueryEntity);

    /**
     * 获取自然增长率
     * @param baseQueryEntity 参数
     * @return 结果
     */
    CrowdStatusEntity getNaturalRate(BaseQueryEntity baseQueryEntity);

    /**
     * 获取费用总计
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getCostNum(BaseQueryEntity baseQueryEntity);

    /**
     * 均次总计
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getPersonNum(BaseQueryEntity baseQueryEntity);

    /**
     * 门诊抗菌药使用率
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getUtilizationRate(BaseQueryEntity baseQueryEntity);

    /**
     * 获取药占比
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getDrugsRate(BaseQueryEntity baseQueryEntity);

    /**
     * 获取床位使用率
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getBedRate(BaseQueryEntity baseQueryEntity);
    /**
     * 获取床位使用率同期
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getBedTqRate(BaseQueryEntity baseQueryEntity);
    /**
     * 重症床位使用率
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getSevereCaseRate(BaseQueryEntity baseQueryEntity);
    /**
     * 获取重症床位使用率同期
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getSevereCaseTqRate(BaseQueryEntity baseQueryEntity);
    /**
     * 手术例数
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getSurgeryRate(BaseQueryEntity baseQueryEntity);
    /**
     * 手术例数住院
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getSurgeryZYRate(BaseQueryEntity baseQueryEntity);

    /**
     * 手术例数TQ
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getSurgeryTqRate(BaseQueryEntity baseQueryEntity);

    /**
     * 死亡人数
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getdeathRate(BaseQueryEntity baseQueryEntity);
    /**
     * 死亡人数TQ
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getdeathTqRate(BaseQueryEntity baseQueryEntity);

    /**
     * 获取公共服务
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<PublicServiceEntity> getPublicService(BaseQueryEntity baseQueryEntity);

    /**
     * 获取中医服务
     * @param baseQueryEntity 参数
     * @return 结果
     */
    ChMedicineEntity getChMedicine(BaseQueryEntity baseQueryEntity);

    /**
     * 获取中药处方比例
     * @param baseQueryEntity 参数
     * @return 结果
     */
    ChMedicineEntity getChMedicineRate(BaseQueryEntity baseQueryEntity);

    /**
     * 获取昨日发热人次、肠道门诊人次
     * @param baseQueryEntity 参数
     * @return 结果
     */
    DisMonitorEntity getLastDayDis(BaseQueryEntity baseQueryEntity);

    /**
     * 获取近7日发热人次
     * @param baseQueryEntity
     * @return
     */
    List<HotEntity> getHotNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取千人口医师，护士，床位
     * @param baseQueryEntity 参数
     * @return 结果
     */
    HealthResEntity getHealthRes(BaseQueryEntity baseQueryEntity);

    /**
     * 获取医疗服务 门诊
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<MedicalEntity> getMZMedical(BaseQueryEntity baseQueryEntity);

    /**
     * 获取医疗服务 住院
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<MedicalEntity> getZYMedical(BaseQueryEntity baseQueryEntity);

    /**
     * 获取昨日省内门诊就诊流向
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<OutpatientFlowEntity> getOutpatientFlow(BaseQueryEntity baseQueryEntity);

    /**
     * 获取半年内住院就诊流向
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<OutpatientFlowEntity> getInHospitalFlow(BaseQueryEntity baseQueryEntity);

    /**
     * 获取近5年人口总数
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getTotal(BaseQueryEntity baseQueryEntity);

    /**
     * 获取近5年出生人口总数
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<AvgCostEntity> getBirthTotal(BaseQueryEntity baseQueryEntity);

    /**
     * 获取近5年内死亡人数
     * @param baseQueryEntity 参数
     * @return 参数
     */
    List<AvgCostEntity> getDieTotal(BaseQueryEntity baseQueryEntity);
    /**
     * 查询病种排名
     *
     * @param
     * @return 结果
     * @author shi_xy_sr@neusiri.com
     * @date 2021/3/5 16:22
     */
    List<OutpatientFlowEntity> getBzFlow(BaseQueryEntity baseQueryEntity);
    /**
     * 查询门诊就诊流向排名
     *
     * @param
     * @return 结果
     * @author shi_xy_sr@neusiri.com
     * @date 2021/3/5 16:36
     */
    List<OutpatientFlowEntity> getJzlxFlow(BaseQueryEntity baseQueryEntity);
}
